Cocos Creator 2.3.0 更新说明
Hi,各位开发者,经过长时间的开发和准备,Cocos Creator 2.3 在今日终于正式发布啦。
这个版本不仅移植了 Cocos Creator 3D 中的物理、碰撞和 3D 粒子系统,还升级到了和 3D 引擎一致的正式版本材质系统,能够胜任更多品类的游戏开发!
从 v2.0 用 3D 渲染器重写、v2.1 开放 3D 能力至今,Cocos Creator 缺失的 3D 能力已经在迭代中逐步补齐。
我们希望能够帮助中小团队开发出惊艳的 3D 休闲项目,并且保留 Creator 做为 2D 引擎轻量高效的优势,这是现阶段 Cocos Creator 和 Cocos Creator 3D 的主要区别。
与此同时,与 3D 引擎更多模块的统一,也是 2D 和 3D 两个产品线完全融合的开始。在不久的将来,Cocos Creator 将会整合两个引擎的优点,提供卓越的 2D/3D 游戏开发体验。
1.支持发布到趣头条小游戏
2.支持 3D 物理系统
和 Cocos Creator 3D 一样,Creator 的物理引擎基于 cannon.js 实现,并为用户提供了高效的组件化工作流程和便捷的使用方法。目前支持了刚体、Box/Sphere 碰撞组件、触发和碰撞事件、物理材质、射线检测等特性。详细说明请参考文档[3D 物理与碰撞系统]。
3.支持 3D 碰撞系统
4.支持 3D 粒子系统
5.升级材质系统到正式版
支持修改材质时在场景中实时预览修改的结果
支持材质变种和 Effect 变种,对 2D 游戏更加友好
支持材质包含多 Technique
支持设置材质的 Technique, Pass, Property 名称
6.支持 Spine 与 DragonBones 挂载节点
7.支持 Spine 二进制资源格式
8.支持构建时只重新编译脚本
9.场景编辑器添加了 3D 查看选项
10.其它重要特性
属性检查器支持资源的多选批量设置
支持切换单点与多点触控,使用 cc.macro.ENABLE_MULTI_TOUCH 宏进行设置#5847
Label 组件在使用 ttf 或系统字体时支持粗体、斜体以及下划线设置
RichText 新增 <img> 的垂直对齐属性 align 和偏移属性 offset,详见[文档](感谢 [RazgrizHsu])#6017
Improvements
优化节点设置 zIndex 时的性能 #5899
减小微信、百度、小米、支付宝小游戏平台的包体大小 100KB
移除动态合图的最小尺寸限制,尽可能减少 DrawCall #5944
优化原生加载图片的性能(感谢 wbenlong)#2035
加载子包的 API loadSubpackage 支持传入进度回调 #15
RichText 支持设置 Label 的缓存模式,可减少 DrawCall、优化性能
优化 Label 的 OverFlow 设置为 SHRINK 时的性能 #5914
Toggle 通过脚本修改 isChecked 状态,2.3 新建项目将不触发事件,旧项目行为不变
支持 Spine 部件贴图拆分,增强换装功能 #5711
引擎代码支持使用 TypeScript 编写
优化骨骼动画私有缓存模式 #6133
场景编辑器支持使用 F 快捷键聚焦节点
动画编辑器添加 Backspace 快捷键用于删除动画帧
完善节点多选批量设置,增加多选添加组件功能
Engine
修复 3D 物体的阴影渲染错误问题 #5940
修复节点销毁时无法强制注销所有监听事件的问题(感谢 ssyyhm) #5985
修复 cc.game.once 多次触发的问题 #6055
修复调用 getBoundingBoxToWorld 之后导致节点矩阵不正确的问题 #6108
修复 Label 使用 BMFont 时无法动态合批的问题 #5860
修复 Label 节点 Overflow 为 NONE 时,同时使用 Widget 组件会导致性能低下的问题 #5908
修复 RichText 使用描边时的内存泄露
修复纹理压缩导致 TiledMap 地表层渲染错误的问题 #5999
修复 TiledMap 地图为非对称形状时,包围盒计算不正确的问题 #5916
修复 TiledMap 的 API getPositionAt 返回值不正确的问题 #5880
修复 Mask 嵌套时,点击事件穿透的问题 #5749
修复 ScrollView 旋转后,检测滚动方向错误的问题 #6102
修复通过滚轮滚动 ScrollView 无法触发 scroll-end 事件的问题 #5814
修复 PageView 在超出边界时进行快速二次拖动,会导致页面跳转错乱的问题 #6015
修复 PageView Indicator 显示错误的问题 #6123
修复粒子系统图片被拉伸为正方形的问题 #5897
修复粒子文件解析 positionType 错误的问题 #5946
修复 Graphic 中途画的点与起点重合后,后面画的点都会自动 close 的问题(感谢 chocol)#6002
修复 WheelJoint 组件设置 Frequency 报错的问题 #6000
修复当 Camera 的 Align With Screen 为 false 时,orthoHeight 计算错误的问题 #6139
修复 VideoPlayer 展示本地视频时,设置 Keep Aspect Ratio 无效的问题 #6138
Native
修复频繁创建 3D 模型导致崩溃的问题 #2056
修复加载图片失败后没有回调的问题 #2077
修复加载同名的远程音频时,会使用本地缓存的问题 #219
修复 Spine、DragonBones、粒子切换父节点后合批失效的问题 #1993
修复 Camera 渲染多个 Stage 报错的问题 #1897
修复 Spine setAttachment 接口无效的问题 #1992
修复 EditBox 输入表情崩溃的问题 #2021
修复 TiledMap 动态加载时渲染异常的问题 #229
修复 iOS 平台与 Mac 平台的文本排版跟 Web 不一致的问题 #1960
修复 iOS 在双击 home 键游戏没有暂停的问题 #1947
修复 iOS 从后台切换前台 glContext 没切换导致崩溃的问题 #2083
修复 Android Instant 构建时文件没有更新的问题 #2067
修复 WebSocket 在 Android 64机型上崩溃的问题 #2074
Mini Game
修复场景延时加载时,VideoPlayer 无法播放的问题 #72
修复 EditBox 长度设置为负值时无效的问题 #60
修复微信上加载音频无响应的问题 #52
修复微信上使用卡通材质渲染错误的问题 #6008
修复微信小游戏 VideoPlayer 播放时,隐藏视频没有暂停播放的问题 #82
修复 vivo 平台上 languageCode 未定义的问题
Web
修复浏览器自动旋转后,Widget 没有正确适配的问题 #6061
修复 UC 浏览器全屏下无法用手指缩放的问题 #5863
修复 IE 浏览器上 VideoPlayer 在退出全屏后位置错误的问题 #5827
修复 QQ 浏览器获取鼠标位置不对的问题 #5604
修复 Safari 浏览器在滚动后,触摸事件错误的问题 #5907
修复 Safari 存在导航栏时显示错误的问题 #5926
Editor
修复动画编辑器切换同名节点时动画错误的问题
修复动画编辑状态下切换至游戏预览面板,预览面板无法显示的问题
修复矩形变化工具设置中心点计算错误的问题
修复设置 Canvas 的 resolution 属性,场景中未能即时更新的问题
修复场景编辑器的 Canvas 线框会被其他节点遮挡的问题
修复无法使用键盘切换节点的问题
修复切换至没有动画组件的节点,动画编辑器显示错误的问题
修复 Color Picker 无法保存颜色预设值的问题
修复切换项目后运行,模拟器分辨率没有切换的问题
修复使用命令行构建失败的问题
修复原生平台剔除 Audio 模块无法构建的问题
修复自动图集没有纹理时,构建失败的问题
修复拷贝工程后,构建失败的问题
修复 Effect 文件名称使用数字开头报错的问题
修复多开编辑器,切换编辑器出现闪屏的问题
修复 TypeScript import 失败的问题
修复编辑器安装在中文路径时,编辑器无法打开的问题
修复导入模型失败的问题
修复 Windows 上构建小米游戏新建证书失败的问题
修复增加碰撞体组件后无法拖拽节点的问题
修复纹理只有三通道时,选择使用 pvrtc-4bits-rgb-seprate-a 压缩纹理引起的图片失真
修复网页预览时 ShowFPS 按钮状态未保存的问题
BREAKING CHANGE
cc.Mat4.translate 方法不再支持旋转变换,仅支持纯位移变换,如需支持旋转请使用 cc.Mat4.transform 代替。
KNOWN ISSUE
直接 require node_modules 的写法在 2.3.0 暂时不可用,下个版本将会修复。目前建议对外部库单独编译并使用插件脚本导入。
DEPRECATION
从 v2.2.0 开始,我们不再建议您使用节点的 Skew 功能。Skew 通常用作在 2D 引擎中模拟 3D 效果,随着 Cocos Creator 对 3D 节点的深入支持,Skew 效果已经完全可以由 3D 节点来实现。所以为了统一使用体验,进一步优化引擎底层实现,我们废弃了 Skew 属性。不过我们依旧会保留一段时间内的向下兼容,开发者可在旧项目中延续原有做法。后续我们将进一步完善兼容方式和升级案例,择机正式移除 Skew 功能。
如果是 Android 平台单独使用的代码请放入 app/src 目录, 单独使用的第三方库请放入 app/libs 目录。
如果是 Android Instant 单独使用的代码和第三方库请分别放入 game/src, game/libs 目录。
如果是 Android 和 Android Instant 共用的代码和第三方库,请分别放入 proj.android-studio 根目录底下的 src 目录和 libs 目录。
proj.android-studio 根目录底下 jni/CocosAndroid.mk , jni/ CocosApplication.mk,主要用于配置引擎相关的配置,开发者的配置,建议 Android 放到 app/jni/Android.mk 和 app/jni/Application.mk中,Android Instant 请放入 game/jni/Android.mk 和 game/jni/Application.mk 中。
从 2.3.0 开始,Canvas 组件不再负责将 Canvas 节点尺寸设为屏幕大小,此行为将结合 Widget 组件实现。为保证兼容性,2.0 项目升级后,Canvas 所在节点会自动添加 Widget 组件。(从 1.0 项目升级无此问题)
3.从 < 2.2.0 版本升级
从 2.2.0 开始,我们强化了内存管理机制,现在要求用户通过代码动态创建且独立于场景节点树的 cc.Node 必须通过 destroy() 释放,否则引擎无法知道何时回收这类节点的内存,会导致内存泄露。
打开 1.x 项目的话,场景等所有资源将会自动升级,代码如有警告或报错,可参考《1.10.0 资源升级指南》和《2.0.0 升级文档》进行调整。
[发布到趣头条小游戏]
https://docs.cocos.com/creator/manual/zh/publish/publish-qutoutiao-mini-games.html
[3D物理与碰撞系统]:
https://docs.cocos.com/creator/2.3/manual/zh/physics-3d/
[设置3D物理引擎]:
https://docs.cocos.com/creator/2.3/manual/zh/physics-3d/physics-select.html
https://docs.cocos.com/creator/2.3/manual/zh/3d/particle-system-3d.html
https://docs.cocos.com/creator/2.3/manual/zh/render/material.html
[Effrct]:
https://docs.cocos.com/creator/2.3/manual/zh/render/effect.html
[Spine组件参考]:
https://docs.cocos.com/creator/2.3/manual/zh/components/spine.html#spine-%E6%8C%82%E7%82%B9
[文档]:
https://docs.cocos.com/creator/2.3/manual/zh/components/richtext.html
[RazgizHsu]:
https://github.com/RazgrizHsu
由于文章限制,只能列举部分链接,点击阅读原文获取全部链接。
以上就是 Cocos Creator 2.3.0 此次更新的详细内容。